#!/usr/bin/env bash

#数据库名称
DB_NAME=ctc

#备份保留天数
KEEP_DAYS=15

#COSCMD命令路径（绝对路径）
COS_CMD=/usr/local/bin/coscmd

#COS配置文件路径（绝对路径）
COS_CONF_PATH=/root/.cos.conf

#本地目录（绝对路径，末尾不带"/"）
LOCAL_DIR=/root/ctc-docker/mysql/data/backup

#远程目录（绝对路径，末尾不带"/"）
REMOTE_DIR=/backup/database

docker exec -i ctc-mysql bash <<'EOF'

#数据库名称
DB_NAME=ctc

#数据库用户
DB_USER=ctc

#数据库密码
DB_PWD=1qaz2wsx3edc

#备份目录(末尾不带"/")
backup_dir=/var/lib/mysql/backup

#创建备份目录
if [ ! -d ${backup_dir} ]; then
  mkdir -p ${backup_dir}
fi

#导出数据
mysqldump --no-tablespaces -u ${DB_USER} -p${DB_PWD} ${DB_NAME} | gzip > ${backup_dir}/${DB_NAME}-$(date +%Y-%m-%d).sql.gz

exit
EOF

#待删过期备份文件
rm_filename=${LOCAL_DIR}/${DB_NAME}-$(date -d -${KEEP_DAYS}day +%Y-%m-%d).sql.gz

#删除过期备份文件
if [ "$(find ${LOCAL_DIR}/${DB_NAME}-*.sql.gz | wc -l)" -gt ${KEEP_DAYS} ]; then
  if [ -f "${rm_filename}" ]; then
    rm -f "${rm_filename}"
  fi
fi

#同步备份
echo y | ${COS_CMD} -c ${COS_CONF_PATH} upload -rs --delete ${LOCAL_DIR}/ ${REMOTE_DIR}/
